package com.wzy.ch01;

public class Lesson1_3 {

    /**
     * 二进制按位“或”的操作
     * @param num1
     * @param num2
     * @return
     */
    public static int or(int num1, int num2){
        return num1 | num2;
    }

    /**
     * 二进制按位“与”的操作
     * @param num1
     * @param num2
     * @return
     */
    public static int and(int num1, int num2){
        return num1 & num2;
    }

    /**
     * 二进制按位“异或”的操作
     * @param num1
     * @param num2
     * @return
     */
    public static int xor(int num1, int num2){
        return num1 ^ num2;
    }

    public static void main(String[] args) {

        int a = 53;
        int b = 35;

        //数字 53(110101) 和数字 35(100011) 的按位‘或’结果是 55(110111)
        System.out.println(String.format("数字 %d(%s) 和数字 %d(%s) 的按位‘或’结果是 %d(%s)",a,Lesson1_1.decimalToBinary(a), b,Lesson1_1.decimalToBinary(b),or(a,b), Lesson1_1.decimalToBinary(or(a,b))));
        //数字 53(110101) 和数字 35(100011) 的按位‘与’结果是 33(100001)
        System.out.println(String.format("数字 %d(%s) 和数字 %d(%s) 的按位‘与’结果是 %d(%s)",a,Lesson1_1.decimalToBinary(a), b,Lesson1_1.decimalToBinary(b),and(a,b), Lesson1_1.decimalToBinary(and(a,b))));
        //数字 53(110101) 和数字 35(100011) 的按位‘异或’结果是 22(10110)
        System.out.println(String.format("数字 %d(%s) 和数字 %d(%s) 的按位‘异或’结果是 %d(%s)",a,Lesson1_1.decimalToBinary(a), b,Lesson1_1.decimalToBinary(b),xor(a,b), Lesson1_1.decimalToBinary(xor(a,b))));


    }


}
